Web document based graphical user interface

ABSTRACT

A web document based GUI for use on a client computer that is networked with server computers. The GUI enables a user of the client computer to initiate specific operations that are performed on the client computer and that define a particular application. The GUI comprises GUI Web documents and a Web browser. Each GUI Web document is located at the client computer or one of the server computers and comprises one or more links and one or more applets. Each link provides a link to a corresponding GUI document when selected by the user with the client computer while being displayed on the client computer. Each respective applet generates, when executed on the client computer, an interactive image that is displayed on the client computer.

[0001] The present invention relates generally to graphical user interfaces (GUls). In particular, it pertains to a GUI comprising interactive GUI Web documents and a Web browser for loading, displaying, and editing the interactive GUI Web documents.

BACKGROUND OF THE INVENTION

[0002] GUIs are well known mechanisms by which users can interact with computer programs. A typical GUI provides windows and/or dialog boxes that enable a user to initiate an operation by the computer program on the user's computer. For example, a user of a word processing program can open a spell checking dialog box by selecting a spell checking icon from a toolbar in the word processing program's window. However, this type of GUI design suffers from several significant problems.

[0003] Specifically, programs with the type of GUI just described are provided in standard packages with specific predetermined operations. In other words, the user is not able to customize and/or extend the GUI by editing it so as to add or remove specific operations that the user desires or does not desire. Moreover, since the programs are provided in standard packages, each time an upgrade is made to the program, the user must install the upgrade on the network or computer hosting the program.

[0004] Therefore, there is a need for a graphical user interface that is editable and can be upgraded easily without user involvement. The World Wide Web (WWW), which links many of the Web server computers making up the Internet, supports these features. The Web server computers store documents identified by unique universal resource locators (URLs). Many of the documents stored at these Web server computers are written in a standard document description language called hypertext markup language (HTML). Using HTML, a designer of a Web document can create displayable hypertext links in the Web document that also identify the URLs of other Web documents. When selected, the hypertext links provide links to corresponding Web documents at other Web server computers based on the URLs they identify.

[0005] A user accesses Web documents stored on the WWW using a Web browser (a computer program designed to display HTML documents and communicate with Web servers) running on a Web client computer connected to the Internet. This is done when the user selects a displayed hypertext link within a Web document currently being viewed with the Web browser. The Web browser then issues a hypertext transfer protocol (HTTP) request for the requested Web document to the Web server computer identified by the selected hypertext link. In response, the designated Web server computer returns the requested Web document to the Web browser with the HTTP.

[0006] The standard HTML syntax of Web pages and the standard communications protocol (HTTP) supported by the WWW guarantee that any Web browser can communicate with any Web server. However, until the invention of the Java programming language and Java applets (i.e., programs written in the Java programming language that are part of a Web document), there was no way to provide platform independent programs over the Internet and the WWW.

[0007] An important feature of the Java programming language is the platform independence of Java applets written in the Java language and compiled into Java bytecode. This means that such programs can be executed on any computer having a Java virtual machine module where the Java virtual machine module interprets the Java applets for execution on the specific platform of the computer.

[0008] Another important feature of Java applets is the verifiability of their integrity by a Java virtual machine module prior to their execution. The Java virtual machine module determines whether Java applets conform to predefined stack usage and data usage restrictions to ensure that Java applets cannot overflow or underflow the virtual machine module's stack and utilize only data of known data types. As a result, Java applets cannot create object pointers and generally cannot access system resources other than those resources which the user explicitly grants it permission to use. Consequently, when Java applets are downloaded to a client computer, a Web browser that is running on the client computer and has a Java virtual machine module will be able to verify and then execute the downloaded applets.

[0009] Thus, the WWW clearly supports an environment for a GUI that is based on Web documents. However, to date, interactive GUI Web documents have not yet been created nor have Web browsers been configured with an editor to enable editing of Web documents located at remote Web server computers.

SUMMARY OF THE INVENTION

[0010] In summary, the present invention is a Web document based GUI for use on a client computer that is networked with server computers. The GUI enables a user of the client computer to initiate specific operations that are performed on the client computer and that define a particular application. The GUI comprises GUI Web documents and a Web browser.

[0011] Each GUI Web document is located at the client computer or one of the server computers and comprises one or more links and one or more applets. Each link provides a link to a corresponding GUI document when selected by the user with the client computer while being displayed on the client computer. Each respective applet generates, when executed on the client computer, an interactive image that is displayed on the client computer. The user can initiate a respective operation (i.e., one of the GUl's specific operations) by acting on the interactive image with the client computer to invoke the respective applet to perform the respective operation on the client computer.

[0012] The Web browser runs on the client computer and, each time a displayed link of a displayed GUI Web document has been selected by the user with the client computer, loads in, if not already loaded, and displays on the client computer the corresponding GUI Web document. The Web browser displays the corresponding GUI web document by executing each of the one or more applets of the corresponding GUI Web document and displaying on the client computer the corresponding interactive image and by displaying on the client computer the one or more links of the corresponding GUI Web document.

[0013] The Web browser comprises an editor that edits on the client computer certain GUI Web Documents by adding and/or removing applets and links from the certain GUI Web documents. In this way, the GUI can be customized.

[0014] The GUI Web documents are HTML Web documents. Thus, those of the GUI Web documents located at the sever computers are loaded to the client computer according to the HTTP.

[0015] Moreover, the one or more applets of each GUI Web document are written in a platform independent programming language. As a result, the Web browser includes a virtual machine module that verifies the integrity of, interprets, and then executes on the client computer the applets. In the preferred embodiment, the platform independent programming language is the Java programming language and the virtual machine module is a Java virtual machine module.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Additional objects and features of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which:

[0017]FIG. 1 is a block diagram of a computer network providing a Web document based GUI in accordance with the present invention.

[0018]FIG. 2 is a functional block diagram of the operation of the Web document based GUI.

[0019]FIG. 3 is a functional block diagram of editing the Web document based GUI.

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0020] Referring to FIG. 1, there is shown a computer network 100 providing a Web document based GUI in accordance with the present invention. It includes one or more client computers 102, one or more server computers 104, and network interconnections 106.

[0021] The client computers 102 are connected to the server computers 104 via the network interconnections 106. The network interconnections may be a local or wide area network, the Internet, or some other types of network interconnections.

[0022] Each server computer 104 includes a central processing unit (CPU) 110, user input devices 112 and 113, a display 114, a network interface 116, and a memory 118. The network interface enables each server computer to communicate with the client computers 102 via the network interconnections 106.

[0023] The memory 118 of each server computer 104 stores an operating system 120, a Web server 122, and Web documents 150. The operating system and Web server are run on the CPU 110. The operating system controls and coordinates running of the Web server. This may be in response to commands issued by a user with the user input devices 112 and 113 in setting up the Web server to download the Web documents. And, it may be in response to requests received by the network interface 116 via the network interconnections 106 from users of the client computers 102 for downloading the Web documents to the client computers. In the preferred embodiment, the Web documents are HTML Web documents and the Web server is an HTTP server for downloading the HTML documents according to the HTTP.

[0024] Each client computer 102 includes a central processing unit (CPU) 126, user input devices comprising a mouse 128 and a keyboard 129, a display 130, a network interface 132, a secondary memory 133, and a primary memory 134. The network interface enables the client computer to communicate with the server computers 104 via the network interconnections 106.

[0025] The primary memory 134 of each client computer system 102 stores an operating system 138 and a Web browser 140 which may be both loaded from the secondary memory 133. Alternatively, they may be downloaded loaded from one of the server computers 104 via the network interconnections 106. The primary memory also stores the Web documents 150 that have been either downloaded from the server computers 104 and/or loaded from the secondary memory. The operating system and Web browser are executed on the CPU 126. The operating system controls and coordinates execution of the Web browser in response to commands issued by a user with the mouse 128 and/or keyboard 129 for downloading the Web documents 150 from the sever computers and/or loading them from the secondary memory. In the preferred embodiment, the Web browser is a HotJava (a trademark of Sun Microsystems) Web browser or Java compatible Web browser that includes a Java virtual machine module.

[0026] The GUI Web documents 150 and the Web browser 140 together comprise a set of computer-readable modules that are suitable for transmission over the network interconnections 106 and form a unique and novel Web document based GUI that is supported by the network 100. The GUI enables the user of a client computer 102 to initiate specific operations on the client computer that define a particular application, such as a word processing application for editing a word processing document.

[0027] Specifically, referring to FIG. 2, each GUI Web document 150 can be displayed on the display 130 by the display manager 142 of the Web browser 140 via the display driver (not shown) of the operating system 138. Also displayed on the display is a mouse arrow 144 and/or cursor 146. This is done via the display driver and a mouse and/or keyboard driver (not shown) of the operating system. Moreover, each GUI Web document is interactive in that, when it is displayed, the user can use the mouse 128 and/or keyboard 129 to move the mouse arrow and/or cursor over the displayed GUI Web document and initiate one or more of the specific operations of the GUI on the client computer 102. In other words, each GUI Web document defines one or more of the specific operations of the GUI.

[0028] For example, in the case where the GUI defines a word processing application, one of the GUI Web documents 150 may provide operations for inserting, deleting, cutting, and/or pasting text in a word processing document. Other GUI Web documents could provide operations for spell checking, equation editing, helping, etc.

[0029] Like most Web documents, each GUI Web document 150 may include text 152 and non-interactive (non-IA) images 154. Thus, when the GUI Web document is displayed, any text and non-IA images are displayed by the display manager 142 of the Web browser 140 in the conventional way. The text and non-IA images may provide information that characterizes and/or describes the particular GUI operations provided by the GUI Web document.

[0030] However, each GUI Web document 150 also includes one or more applets 156 that make it interactive. When the GUI Web document is displayed, the display manager 142 executes each applet. In response, each applet generates a corresponding interactive (IA) image 160 that is displayed by the display manager via the display driver of the operating system 138. When displayed, each IA image enables a user to initiate one of the operations of the GUI each time the user uses the mouse 128 or keyboard 129 in a corresponding way when the displayed mouse arrow 144 or cursor 146 is over the displayed IA image. This invokes the applet that generated the IA image and the applet performs the corresponding operation on the client computer 102 and updates the IA image for display by the display manager.

[0031] Thus, in the example where one of the GUI Web documents 150 provides operations for inserting, deleting, cutting, and/or pasting text in a word processing document, this GUI Web document would include an applet 152 which generates an IA image 160 of the word processing document. And, when the IA image is acted on by the user with the mouse 128 and/or keyboard 129, the applet that generates the IA image is invoked so that the user is able to insert, delete, cut, and/or paste text in the word processing document using the mouse and/or keyboard. Additionally, this GUI web document could have a toolbar with operations for selecting fonts and inserting page numbering. The GUI Web document would include an applet which generates an IA image listing the selectable fonts and an applet which generates an IA image providing various page numbering options. Thus, when these IA images are acted on by the user with the mouse 128 and/or keyboard 129, the applets that generates the IA images are invoked so that the user is able to select a font or page numbering option which may then be provided to the main applet generating the IA image of the word processing document for display in the word processing document.

[0032] As mentioned earlier, the Web browser 140 is, in the preferred embodiment, a HotJava Web browser or a Java compatible Web browser. Thus, in the preferred embodiment, the applets 156 are Java applets and the display manager 142 of the Web browser includes a Java virtual machine module for verifying, interpreting, and then executing on the client computer 102 the Java applets.

[0033] Each GUI Web document 150 is also interactive in that it includes one or more interactive links 158 that are displayed by the display manager 142 when the GUI Web document is displayed. Each link provides a link to a corresponding GUI Web document when it is selected with the mouse 128 when the displayed mouse arrow 144 is moved with the mouse over the link.

[0034] When this occurs and the corresponding GUI Web document 150 has already been loaded into the primary memory 134, then the display manager 142 displays it on the display 130 in the manner described earlier. But, if the GUI Web document has not yet been loaded into the primary memory 134, then the load manager 148 does so and the display manager than displays it on the display. As mentioned earlier, the GUI Web document may be loaded from one of the Web sever computers 104 or the secondary memory 133 of the client computer 102 depending on where it is located. Additionally, the initial GUI Web document of the GUI may be loaded, in the manner just described, when the user uses the mouse 128 and/or keyboard 129 and the Web browser's own GUI to specify the URL of the GUI Web document. The Web browser's own GUI is displayed on the display by the display manager.

[0035] Thus, in the examples given earlier where the GUI defines a word processing application, the GUI Web document 150 that provides operations for inserting, deleting, cutting, and/or pasting text in a word processing document may have a toolbar with a link 158 to a GUI Web document that provides operations for spell checking. In addition, the toolbar of this GUI Web document could have another link to a GUI Web document that provides operations for equation editing and even another link to a GUI Web document that provides operations and/or text for helping (i.e., explaining to) the user to perform the text inserting, deleting, cutting, and/or pasting operations of the GUI Web document with the link. Similarly, each of the linked GUI Web documents could have similar links to other GUI Web documents.

[0036] In this way, all of the GUI Web documents 150 of the GUI are linked together so that a user may move back and forth between them. Thus, when a user wishes to initiate a specific operation of the GUI, the user locates the appropriate GUI Web document defining the operation by using the links of other GUI Web documents. The user then initiates the desired operation in the manner described earlier.

[0037] In view of the foregoing, the GUI Web documents 150 and the Web browser 140 together comprise a GUI that defines an entire application with linked specific operations and additionally may include a linked help system. Moreover, as alluded to earlier and referring to FIG. 3, the GUI can be edited by a user with the editor 149 of the Web browser 140. This is done by editing the GUI Web documents 150.

[0038] In order to edit a GUI Web document 150, a user downloads the GUI Web document in the manner described earlier. As was described earlier, this is done with the mouse 128 and/or keyboard 129 by selecting a displayed link 160 in another GUI Web document or specifying its URL address using the Web browser's own displayed GUI.

[0039] Then, the user selects with the mouse 128 and/or keyboard 129 the editing mode using the Web browser's own GUI. In response, the display manager 142 invokes the editor 149. The editor enables the user to edit the downloaded GUI Web document by inserting and/or deleting text 152, non-IA images 154, applets 156, and links 158.

[0040] After any GUI Web documents 150 are edited, they are then re-located by the load manager at either a preexisting URL or a new URL. This URL may be either local at the secondary memory 134 or remote at any of the Web sever computers 104, including the same Web server computer at which it may have originally been located.

[0041] In this way, a user can customize an already existing GUI by adding and/or removing operations to and/or from certain existing GUI Web documents 150. This is done by adding and/or removing applets 156 from these GUI Web documents and adding and removing links 158 from the GUI Web documents which are linked to the modified GUI Web documents. The removed links may identify the URLs of the original GUI Web documents that were modified while the added links may identify the new URLs of the modified GUI Web documents.

[0042] A user could also customize the GUI by adding to it new GUI Web documents 150 that add new operations to the GUI and/or by removing existing GUI Web documents from the GUI so as to remove some of the operations of the GUI. This would be done by adding links 158 to any GUI Web documents which are to be linked to a new GUI Web document and/or removing links from any GUI Web documents which were previously linked to a removed GUI Web document.

[0043] While the present invention has been described with reference to a few specific embodiments, the description is illustrative of the invention and is not to be construed as limiting the invention. Various modifications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined by the appended claims. 

What is claimed is:
 1. A Web document based GUI (graphical user interface) for use on a client computer that is networked with server computers, the GUI enabling a user of the client computer to initiate specific operations that are performed on the client computer and that define a particular application, the GUI comprising: GUI Web documents, each of the GUI Web documents being located at the client computer or one of the server computers and comprising: one or more links, each of the one or more links providing a link to a corresponding one of the GUI Web documents when selected by the user with the client computer while being displayed on the client computer; one or more applets, each respective one of the one or more applets generating when executed on the client computer an interactive image that is displayed on the client computer so that the user can initiate a respective one of the specific operations by acting on the interactive image with the client computer to invoke the respective one of the one or more applets to perform the respective one of the specific operations on the client computer; a Web browser that runs on the client computer and that, each time one of the displayed one or more links of a displayed one of the GUI Web documents has been selected by the user with the client computer, loads in, if not already loaded, and displays on the client computer the corresponding one of the GUI Web documents, the Web browser displaying the corresponding one of the GUI web documents by executing each the one or more applets of the corresponding one of the GUI Web documents and displaying on the client computer the corresponding one or more interactive images and by displaying on the client computer the one or more links of the corresponding one of the GUI Web documents.
 2. The GUI of claim 1 wherein the Web browser comprises an editor that edits on the client computer certain ones of GUI Web Documents by adding and/or removing ones of the applets and ones of the links from the certain ones of the GUI Web documents so as to customize the GUI.
 3. The GUI of claim 1 wherein the GUI Web documents are HTML Web documents and those of the GUI Web documents located at the sever computers are loaded to the client computer according to the HTTP.
 4. The GUI of claim 1 wherein the one or more applets of each of the GUI Web documents are written in a platform independent programming language and the Web browser includes a virtual machine module that verifies the integrity of, interprets, and then executes on the client computer the one or more applets of the corresponding one of the GUI Web documents.
 5. The GUI of claim 4 wherein the platform independent programming language is the Java programming language and the virtual machine module is a Java virtual machine module.
 6. A method of providing a Web document based GUI (graphical user interface) for use on a client computer that is networked with server computers, the GUI enabling a user of the client computer to initiate specific operations that are performed on the client computer and that define a particular application, the method comprising the steps of: providing GUI Web documents, each of the GUI Web documents being located at the client computer or one of the server computers and comprising: one or more links, each of the one or more links providing a link to a corresponding one of the GUI documents when selected by the user with the client computer while being displayed on the client computer; one or more applets, each respective one of the one or more applets generating when executed on the client computer an interactive image that is displayed on the client computer so that the user can initiate a respective one of the specific operations by acting on the interactive image with the client computer to invoke the respective one of the one or more applets to perform the respective one of the specific operations on the client computer; each time one of the displayed one or more links of a displayed one of the GUI Web documents has been selected by the user with the client computer, loading in, if not already loaded, and displaying on the client computer the corresponding one of the GUI Web documents, the displaying step including: executing the one or more applets of the corresponding one of the GUI Web documents and displaying on the client computer the corresponding one or more interactive images; and displaying on the client computer the one or more links of the corresponding one of the GUI Web documents.
 7. The method of claim 6 further comprising the step of editing certain ones of the GUI Web documents by adding and/or removing ones of the applets and ones of the links from the certain ones of the GUI Web documents so as to customize the GUI.
 8. The method of claim 6 wherein the GUI Web documents are HTML Web documents and those of the GUI Web documents located at the sever computers are loaded to the client computer according to the HTTP.
 9. The method of claim 6 wherein the one or more applets of each of the GUI Web documents are written in a platform independent programming language and the executing step includes, with a virtual machine module, verifying the integrity of, interpreting, and then executing on the client computer the one or more applets of the corresponding one of the GUI Web documents.
 10. The method of claim 9 wherein the platform independent programming language is the Java programming language and the virtual machine module is a Java virtual machine module.
 11. In a computer network including server computers and a client computer that is networked with the server computers, a set of computer-readable modules suitable for transmission over network interconnections, the set of computer-readable modules providing a Web document based GUI (graphical user interface) for use on the client computer, the GUI enabling a user of the client computer to initiate specific operations that are performed on the client computer and that define a particular application, the set of computer-readable modules comprising: GUI Web documents, each of the GUI Web documents being located at the client computer or one of the server computers, each of the GUI Web documents comprising: one or more links, each of the one or more links providing a link to a corresponding one of the GUI Web documents when selected by the user with the client computer while being displayed on the client computer; one or more applets, each respective one of the one or more applets generating when executed on the client computer an interactive image that is displayed on the client computer so that the user can initiate a respective one of the specific operations by acting on the interactive image with the client computer to invoke the respective one of the one or more applets to perform the respective one of the specific operations on the client computer; and a Web browser that runs on the client computer and that, each time one of the displayed one or more links of a displayed one of the GUI Web documents has been selected by the user with the client computer, loads in, if not already loaded, and displays on the client computer the corresponding one of the GUI Web documents, the Web browser displaying the corresponding one of the GUI web documents by executing each the one or more applets of the corresponding one of the GUI Web documents and displaying on the client computer the corresponding one or more interactive images and by displaying on the client computer the one or more links of the corresponding one of the GUI Web documents.
 12. The set of computer-readable modules of claim 11 wherein the Web browser comprises an editor that edits on the client computer certain ones of GUI Web Documents by adding and/or removing ones of the applets and ones of the links from the certain ones of the GUI Web documents so as to customize the GUI.
 13. The set of computer-readable modules of claim 11 wherein the GUI Web documents are HTML Web documents and those of the GUI Web documents located at the sever computers are loaded to the client computer according to the HTTP.
 14. The set of computer-readable modules of claim 11 wherein the one or more applets of each of the GUI Web documents are written in a platform independent programming language and the Web browser includes a virtual machine module that verifies the integrity of, interprets, and then executes on the client computer the one or more applets of the corresponding one of the GUI Web documents.
 15. The set of computer-readable modules of claim 14 wherein the platform independent programming language is the Java programming language and the virtual machine module is a Java virtual machine module. 